package com.sky.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

/**
 * @author RY
 */
public class ShaUtil {

    private static final String DEFAULT_ALGORITHM = "SHA-256";

    /**
     * 生成给定字符串的哈希值。
     *
     * @param input     输入字符串
     * @param algorithm 哈希算法，默认为SHA-256
     * @return 字符串的哈希值
     */
    public static String hash(String input, String algorithm) {
        try {
            MessageDigest digest = MessageDigest.getInstance(algorithm);
            byte[] hashBytes = digest.digest(input.getBytes());
            return Base64.getEncoder().encodeToString(hashBytes);
        } catch (NoSuchAlgorithmException e) {
            throw new IllegalStateException("Hash algorithm not found: " + algorithm, e);
        }
    }

    /**
     * 使用默认算法SHA-256生成哈希值。
     *
     * @param input 输入字符串
     * @return 字符串的哈希值
     */
    public static String hash(String input) {
        return hash(input, DEFAULT_ALGORITHM);
    }


}
